// 不允许重复! 每个值都是唯一的
const s = new Set()
// add方法返回集合本身所以可以链式调用!
s.add(1).add(2).add(1).add(3).add(4)
console.log(s)
// Set(4) { 1, 2, 3, 4 }
// ---------------------------------------------------
// 遍历需要调用forEach 或者 for of
s.forEach((i) => console.log(i))
for (let i of s) {
  console.log(i)
}
// 1
// 2
// 3
// 4
// ---------------------------------------------------
// size对应数组的length
console.log(s.size)
// 4
// ---------------------------------------------------
// has判断是否存在某个特定的值
console.log(s.has(100))
// false
// ---------------------------------------------------
// 删除需要delete方法
console.log(s.delete(1))
// true/false 删除成功true 不存在的话删除是false
console.log(s)
// Set(3) { 2, 3, 4 }
// ---------------------------------------------------
// clear清空集合的全部内容
s.clear()
console.log(s)
// Set(0) {}
// ---------------------------------------------------
// 数组去重
const arr = [1, 2, 1, 22, 3, 4, 5, 6]
// Array.from方法
const result1 = Array.from(new Set(arr))
// 在空的数组中展开
const result = [...new Set(arr)]
console.log(result)
// Set(7) { 1, 2, 22, 3, 4, 5, 6 } => [1, 2, 22, 3, 4, 5, 6]
